home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / prog_c / cuj0696.zip / DWYER.ZIP / QFLOAT / QHEAD.H < prev    next >
C/C++ Source or Header  |  1996-03-31  |  3KB  |  131 lines

  1. /* ------- */
  2. /* qhead.h */
  3. /* ------- */
  4. # ifndef __QHEAD_H__
  5. #     define    __QHEAD_H__
  6.  
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10.  
  11. /* Type of the array elements in a Q-type number */
  12. typedef short QELT;
  13.  
  14. /* Number of bits in a word of that type */
  15. #define WORDSIZE 16
  16.  
  17. /* Number of WORDSIZE-bit words in a q type number.
  18.    For WORDSIZE 16, NQ = 12 or 24.
  19.    For WORDSIZE 32, NQ = 14.  */
  20. #define NQ 24
  21.  
  22. /* Most significant bit of the word size used.  */
  23. #define SIGNBIT ((unsigned int) 1 << (WORDSIZE-1))
  24.  
  25. /* Largest exponent value */
  26. #define MAXEXP 32767
  27.  
  28. /* The exponent of 1.0 */
  29. #define EXPONE 0x4001
  30.  
  31. /* Number of words in significand area */
  32. #define OMG (NQ-2)
  33.  
  34. /* Byte offset to least significant word of significand */
  35. #define OFFS (4*OMG+4)
  36.  
  37. /* Number of bits of precision */
  38. #define NBITS ((OMG-1)*WORDSIZE)
  39.  
  40. /* Maximum number of decimal digits after decimal point in conversion */
  41. #define NDEC (NBITS*8/27)
  42.  
  43. typedef struct QCmplxStru
  44.     {
  45.     QELT r[NQ];
  46.     QELT i[NQ];
  47.     }qcmplx;
  48.  
  49. extern short oneopi[];
  50. extern short q32[];
  51. extern short qeul[];
  52. extern short qhalf[];
  53. extern short qlog2[];
  54. extern short qnine[];
  55. extern short qone[];
  56. extern short qpi[];
  57. extern short qsqrt2[];
  58. extern short qthree[];
  59. extern short qtwo[];
  60. extern short qzero[];
  61. #if 0
  62. /* ------------------- */
  63. /* FUNCTION PROTOTYPES */
  64. /* ------------------- */
  65.  
  66. /* INDENT OFF */
  67.  
  68. extern    int    addm    (void *, void *);
  69. extern    int    asctoq    (char *, void *);
  70. extern    int    cmpm    (void *, void *);
  71. extern    int    divm    (void *, void *);
  72. extern    int    dtoq    (void *, void *);
  73. extern    int    e113toq    (void *, void *);
  74. extern    int    e64toq    (void *, void *);
  75. extern    int    etoq    (void *, void *);
  76. extern    int    ltoq    (long *, void *);
  77. extern    int    mtherr    (const char *, int);
  78. extern    int    mulin    (void *, void *);
  79. extern    int    mulm    (void *, void *);
  80. extern    int    normlz    (void *);
  81. extern    int    qabs    (void *);
  82. extern    int    qadd    (void *, void *, void *);
  83. extern    int    qadd1    (void *, void *, void *);
  84. extern    int    qclear    (void *);
  85. extern    int    qcmp    (void *, void *);
  86. extern    int    qdiv    (void *, void *, void *);
  87. extern    int    qexp    (void *, void *);
  88. extern    int    qfloor    (void *, void *);
  89. extern    int    qifrac    (void *, long *, void *);
  90. extern    int    qinfin    (void *);
  91. extern    int    qisneg    (void *);
  92. extern    int    qldexp    (void *, int);
  93. extern    int    qlog    (void *, void *);
  94. extern    int    qmov    (void *, void *);
  95. extern    int    qmovz    (void *, void *);
  96. extern    int    qmul    (void *, void *, void *);
  97. extern    int    qmuli    (void *, void *, void *);
  98. extern    int    qneg    (void *);
  99. extern    int    qnrmlz    (void *);
  100. extern    int    qpow    (void *, void *, void *);
  101. extern    int    qpowi    (void *, void *, void *);
  102. extern    int    qrand    (void *);
  103. extern    int    qremain    (void *, void *, void *);
  104. extern    int    qround    (void *, void *);
  105. extern    int    qsqrt    (void *, void *);
  106. //extern    void    qsrand    (const unsigned int);
  107. extern    int    qsub    (void *, void *, void *);
  108. extern    int    qtanh    (void *, void *);
  109. extern    int    qtoasc    (void *, char *, int);
  110. extern    int    qtod    (void *, void *);
  111. extern    int    qtoe    (void *, void *);
  112. extern    int    qtoe113    (void *, void *);
  113. extern    int    qtoe64    (void *, void *);
  114. extern    int    shdn1    (void *);
  115. extern    int    shdn16    (void *);
  116. extern    int    shdn8    (void *);
  117. extern    int    shift    (void *);
  118. extern    int    shup1    (void *);
  119. extern    int    shup16    (void *);
  120. extern    int    shup8    (void *);
  121. extern    int    subm    (void *, void *);
  122.  
  123. # undef    F
  124. /* INDENT ON */
  125. #endif
  126. #ifdef __cplusplus
  127. }
  128. #endif
  129.  
  130. # endif
  131.